package mtn.bowen.yan.server.exception;

import mtn.bowen.yan.server.enums.ErrorCode;

/**
 * @author <a href=mailto:yanbowen90@foxmail.com> bowen.yan </a>
 * @version 1.0
 * @description: TODO
 * @date 2021-10-22 10:37 AM
 */
public class CaiPuServerException extends RuntimeException {
    private static final long serialVersionUID = 1L;

    private Integer code;

    private String userMsg;

    public CaiPuServerException() {
        super();
    }

    /**
     * 异常定义
     *
     * @param errmsg    异常信息
     * @param errorCode 异常码
     */
    public CaiPuServerException(Integer errorCode, String errmsg) {
        super(errmsg);
        code = errorCode;
        userMsg = errmsg;
    }

    /**
     * 异常定义 （包含ERRORCODE）
     *
     * @param errorCode 报错信息
     */
    public CaiPuServerException(ErrorCode errorCode, String errmsg) {
        super(errmsg);
        code = errorCode.getCode();
        userMsg = errorCode.getMsg();
    }

    /**
     * 异常定义 （包含ERRORCODE）
     *
     * @param errorCode 报错信息
     */
    public CaiPuServerException(ErrorCode errorCode) {
        super(errorCode.getMsg());
        code = errorCode.getCode();
        userMsg = errorCode.getMsg();
    }

    /**
     * 异常定义 （包含UserMsg）
     *
     * @param errmsg
     * @param errorCode
     * @param usermsg
     */
    public CaiPuServerException(Integer errorCode, String usermsg, String errmsg) {
        super(errmsg);
        code = errorCode;
        userMsg = usermsg;
    }

    public String getUserMsg() {
        return userMsg;
    }

    public Integer getCode() {
        return code;
    }
}